package com.yunji.news.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

/**
 * 年度招生信息实体类
 * 
 * 管理每年变化的招生相关信息，包括：
 * - 报名入口信息
 * - 入围查询信息  
 * - 缴费确认信息
 * - 校测考纲信息
 * - 录取名单信息
 *
 * @author yunji
 * @since 2025-11-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("annual_enrollment_info")
public class AnnualEnrollmentInfo {
    
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    
    /**
     * 学校ID（关联schools表）
     */
    private Long schoolId;
    
    /**
     * 招生年份
     */
    private Integer year;
    
    // ==================== 报名相关信息 ====================
    
    /**
     * 报名开始时间描述（如：3月1日）
     */
    private String registrationStartTime;
    
    /**
     * 报名结束时间描述（如：4月10日）
     */
    private String registrationEndTime;
    
    /**
     * 报名入口链接
     */
    private String registrationUrl;
    
    // ==================== 入围查询相关信息 ====================
    
    /**
     * 入围公布时间（如：3月15日）
     */
    private String qualifiedAnnounceTime;
    
    /**
     * 入围查询链接
     */
    private String qualifiedQueryUrl;
    
    /**
     * 交流群链接
     */
    private String communicationGroupUrl;
    
    // ==================== 缴费确认相关信息 ====================
    
    /**
     * 缴费开始时间（如：3月20日）
     */
    private String paymentStartTime;
    
    /**
     * 缴费截止时间（如：3月25日）
     */
    private String paymentEndTime;
    
    /**
     * 缴费入口链接
     */
    private String paymentUrl;
    
    // ==================== 校测考纲相关信息 ====================
    
    /**
     * 考纲发布时间（如：3月10日）
     */
    private String examOutlineReleaseTime;
    
    /**
     * 考纲查看/下载链接
     */
    private String examOutlineUrl;
    
    /**
     * 考试时间（如：4月15日）
     */
    private String examTime;
    
    // ==================== 录取名单相关信息 ====================
    
    /**
     * 录取名单公布时间（如：4月25日）
     */
    private String admissionListReleaseTime;
    
    /**
     * 录取名单查询链接
     */
    private String admissionListUrl;
    
    // ==================== 通用字段 ====================
    
    /**
     * 备注信息
     */
    private String remark;
    
    /**
     * 排序权重（数值越小越靠前）
     */
    private Integer sortOrder;
    
    /**
     * 状态：0-禁用 1-启用
     */
    private Integer status;
    
    /**
     * 是否删除：0-否 1-是
     */
    @TableLogic
    private Integer deleted;
    
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdAt;
    
    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;
}